package com.idez.androiddelphi.utils;

import java.io.Serializable;

import javax.interceptor.AroundInvoke;
import javax.interceptor.Interceptor;
import javax.interceptor.InvocationContext;

import com.idez.androiddelphi.model.Usuario;

@Interceptor
public class LogInterceptor implements Serializable {

	private static final long serialVersionUID = 1L;

	@AroundInvoke
	public Object metodoInterceptador(InvocationContext ic) throws Exception {

		System.out.println("Método invocado: " + ic.getMethod());

		if (ic.getMethod().getName().equals("salvar")) {

			Object[] params = ic.getParameters();
			Usuario u = (Usuario) params[0];
			System.out.println("Usuário: [nome] " + u.getNome() + " [login] "
					+ u.getLogin() + " [email] " + u.getEmail() + " [senha] "
					+ u.getSenha());
		} else if (ic.getMethod().getName().equals("enviarMsgCadastro")) {

			Object[] params = ic.getParameters();
			Usuario u = (Usuario) params[0];
			System.out.println("Email à enviar: " + " [nome] " + u.getNome()
					+ " [email] " + u.getEmail());
		}

		Object resultado = ic.proceed();

		return resultado;

	}

}
